package com.plsjavaweb.dao;

import org.apache.log4j.Logger;

import com.plsjavaweb.dao.implementation.AccountDAOImpl;
import com.plsjavaweb.dao.implementation.EmployeeDAOImpl;
import com.plsjavaweb.dao.implementation.EmployeeSeatDAOImpl;
import com.plsjavaweb.dao.implementation.ReportsDAOImpl;
import com.plsjavaweb.dao.implementation.SearchDAOImpl;
import com.plsjavaweb.dao.interfaces.AccountDAO;
import com.plsjavaweb.dao.interfaces.DAOFactoryInterface;
import com.plsjavaweb.dao.interfaces.EmployeeDAO;
import com.plsjavaweb.dao.interfaces.EmployeeSeatDAO;
import com.plsjavaweb.dao.interfaces.ReportsDAO;
import com.plsjavaweb.dao.interfaces.SearchDAO;
import com.plsjavaweb.logging.LoggingConstants;

public class DAOFactory implements DAOFactoryInterface{
	static Logger log= Logger.getLogger(DAOFactory.class);
	static LoggingConstants logConst = new LoggingConstants();
	
	public static AccountDAO getAccountDAO() {
		log.info(logConst.entryMessage);
		log.info(logConst.returnedMessage);
		return new AccountDAOImpl();		
	}

	public static EmployeeDAO getEmployeeDAO() {
		log.info(logConst.entryMessage);
		log.info(logConst.returnedMessage);
		return new EmployeeDAOImpl();
	}
	
	public static ReportsDAO getReportDAO() {
		log.info(logConst.entryMessage);
		log.info(logConst.returnedMessage);
		return new ReportsDAOImpl();
	}
	
	public static SearchDAO getSearchDAO() {
		log.info(logConst.entryMessage);
		log.info(logConst.returnedMessage);
		return new SearchDAOImpl();
	}
	
	public EmployeeSeatDAO getEmployeeSeatDAO(){
		log.info(logConst.entryMessage);
		log.info(logConst.returnedMessage);
		return new EmployeeSeatDAOImpl();
	}

}
